📸 Camera HAL 实战手册
从零到一 · 30 章完整路线
🎯 友好色系
📘 AOSP · HAL3
v2025
📚 每一章对应一个独立 HTML 文件,点击卡片跳转
共 30 章 · 紧凑目录
01
Camera HAL 概述
Android 架构全景
HAL 作用与地位
HAL1 vs HAL3
学习路线图
02
开发环境搭建
AOSP 源码下载
Ubuntu 编译
模拟器/真机
adb, lldb, gdb
03
HAL 接口定义
HIDL vs AIDL
ICameraProvider
ICameraDevice
ICameraDeviceSession
04
Camera Provider 实现
创建 Provider 服务
注册 Camera 设备
getCameraIdList
getCameraDeviceInterface
05
Camera Device 实现
open 流程
initialize
configureStreams
getCameraCharacteristics
06
Camera Session 实现
processCaptureRequest
flush & close
Buffer 管理
Request 队列调度
07
Metadata 管理
CameraMetadata 结构
静态元数据
动态 Result
更新策略
08
Buffer 管理
Gralloc 分配器
BufferQueue
Stream 配置
内存池复用
09
Pipeline 设计
Pipeline 概念
Node 节点
Buffer 流转同步
状态机
10
Sensor 驱动适配
V4L2 框架
Sensor 注册
曝光/增益
VSYNC 处理
11
ISP 处理流程
ISP Pipeline
RAW 域
YUV 域
JPEG & EXIF
12
3A 算法集成
自动曝光 AE
自动对焦 AF
自动白平衡 AWB
3A 状态机
13
多 Camera 支持
多 Camera 架构
同步/独立模式
逻辑 & 物理
调试技巧
14
HAL 性能优化
启动时间
Capture 延迟
内存占用
功耗优化
15
调试与日志
logcat, dmesg
systrace, perfetto
asan, hwasan
Bug 定位
16
CTS/VTS 测试
CTS 框架
Camera CTS 用例
VTS 要点
失败修复
17
HAL 安全机制
权限控制
SELinux 策略
Camera 沙箱
隐私保护
18
HAL 与 Framework 交互
CameraService 启动
HAL 服务注册
Binder 通信
回调与事件
19
HAL 与 Kernel 交互
IOCTL 调用
DMA-BUF 共享
中断与轮询
设备树配置
20
HAL 与 Vendor 库集成
dlopen 加载
Vendor 接口封装
回调处理
版本兼容
21
HAL 热插拔与异常处理
热插拔检测
设备移除/恢复
异常捕获
Watchdog
22
HAL 多进程架构
进程模型
IPC 通信
共享内存
崩溃恢复
23
HAL 版本迁移
HAL1→HAL3
HIDL→AIDL
接口兼容
迁移实战
24
HAL 自定义扩展
Vendor Tag
自定义 Capture
扩展 Result
Vendor API
25
HAL 与 AI 结合
AI 场景识别
AI 降噪
AI 超分
AI 对焦辅助
26
HAL 与 Video 编码
Video 流配置
H.264/H.265
编码 Buffer
编码优化
27
HAL 与 Display 同步
Preview 显示
SurfaceFlinger
Fence 同步
显示延迟优化
28
HAL 与 Sensor 融合
陀螺仪/加速度计
OIS/EIS 防抖
时间戳同步
融合算法
29
HAL 实战项目
简易 Camera HAL
拍照预览
集成 3A
CTS 基础测试
30
HAL 未来趋势
计算摄影
多模态融合
端侧 AI
开源生态